#ifndef CALL_SCREEN_H
#define CALL_SCREEN_H

#include "lvgl/lvgl.h"
#include <stdbool.h>
#include <stdint.h>

// 联系人信息结构体
typedef struct {
    char name[32];              // 联系人姓名
    char phone[32];             // 电话号码  
    char email[64];             // 邮箱地址
    char avatar_path[64];       // 头像路径（可选）
    char webhook_url[256];      // HTTP Webhook URL
    bool enabled;               // 是否启用
} contact_info_t;

// 消息发送状态
typedef enum {
    MSG_STATUS_IDLE,        // 空闲
    MSG_STATUS_SENDING,     // 发送中
    MSG_STATUS_SUCCESS,     // 发送成功
    MSG_STATUS_FAILED       // 发送失败
} message_status_t;

// 函数声明

/**
 * @brief 创建呼叫页面
 * @note 创建一个包含联系人列表和消息输入的呼叫界面
 */
void create_call_screen(void);

/**
 * @brief 清理呼叫页面资源
 * @note 在离开呼叫页面时调用
 */
void cleanup_call_screen(void);

/**
 * @brief 发送HTTP消息
 * @param contact_index 联系人索引 (0-3)
 * @param message 要发送的消息内容
 * @return true 发送成功，false 发送失败
 */
bool send_http_message(int contact_index, const char *message);

/**
 * @brief 发送消息到云平台
 * @param contact_index 联系人索引 (0-3)
 * @param subject 消息主题
 * @param message 消息内容
 * @return true 发送成功，false 发送失败
 */
bool send_cloud_message(int contact_index, const char *subject, const char *message);

/**
 * @brief 设置联系人信息
 * @param index 联系人索引 (0-3)
 * @param name 联系人姓名
 * @param phone 电话号码
 * @param webhook_url HTTP Webhook URL
 */
void set_contact_info(int index, const char *name, const char *phone, const char *webhook_url);

/**
 * @brief 设置云平台配置
 * @param api_url 云平台API地址
 * @param api_key API密钥
 * @param device_id 设备ID
 * @param project_name 项目名称
 * @param timeout 超时时间（秒）
 */
void set_cloud_config(const char *api_url, const char *api_key, const char *device_id, 
                     const char *project_name, int timeout);

/**
 * @brief 获取联系人信息
 * @param index 联系人索引 (0-3)
 * @return 联系人信息指针，如果索引无效则返回NULL
 */
const contact_info_t* get_contact_info(int index);

/**
 * @brief 设置系统状态消息
 * @param message 状态消息
 * @param is_error 是否为错误消息
 */
void set_call_status_message(const char *message, bool is_error);

/**
 * @brief 返回到智能家居主界面
 */
void return_to_smart_home_from_call(void);

// 外部引用的字体声明
extern const lv_font_t lv_font_source_han_sans_bold_20;

// 外部引用的头像图片声明
extern const lv_img_dsc_t father;    // 爸爸头像
extern const lv_img_dsc_t mom;       // 妈妈头像
extern const lv_img_dsc_t son;       // 儿子头像
extern const lv_img_dsc_t daughter;  // 女儿头像

#endif /* CALL_SCREEN_H */
